专利摘要:
マルチスレッド・プロセッサの1つまたは複数のスレッドに関連する命令を提供するように適応されたシーケンサを含むマルチスレッド・プロセッサが開示される。シーケンサは、1つまたは複数の割込みを受け取り、1つまたは複数のスレッドのうちの第1のスレッドが少なくとも1つの割込みを処理することを選択的に可能にするように適応された割込みコントローラを含む。割込みコントローラは、1つまたは複数のスレッドのうちの第2のスレッドが少なくとも1つの割込みに応答することを防ぐための論理を含む。
公开号:JP2011507109A
申请号:JP2010538161
申请日:2008-12-11
公开日:2011-03-03
发明作者:アーメド、ムハンマド;アンダーソン、ウィリアム・シー.;コドレスキュ、ルシアン;プロンケ、エリッチ・ジェイ.;ベンクマハンティ、スレシュ・ケー.
申请人:クゥアルコム・インコーポレイテッドQualcomm Incorporated;
IPC主号:G06F9-48
专利说明:

[0001] 関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれている、2005年10月18日に出願され、整理番号第050587号で指定された米国特許出願第11/253,906号、「SHARED INTERRUPT CONTROL METHODAND SYSTEMFOR A DIGITAL SIGNALPROCESSOR」の優先権を主張するものであり、またその一部継続出願である。]
[0002] 本開示は、一般には、マルチスレッド・プロセッサのための共有割込みコントローラに関する。]
背景技術

[0003] 技術の進歩は、より小さくより強力なパーソナル・コンピューティング装置をもたらしてきた。たとえば、小さく軽量でユーザが持ち運び易い携帯型無線電話、携帯情報端末(PDA)およびページング装置などの無線コンピューティング装置を含めて、様々な携帯型パーソナル・コンピューティング装置が現在存在する。より具体的には、携帯電話およびインターネットプロトコル(IP)電話などの携帯型無線電話は、無線網を介して音声およびデータパケットを通信することができる。さらに、多くのこうした無線電話は、その中に組み込まれている他のタイプの装置を含む。たとえば、無線電話は、ディジタル静止カメラ、ディジタル・ビデオカメラ、ディジタル・レコーダおよびオーディオ・ファイル・プレーヤーをも含み得る。また、こうした無線電話は、インターネットにアクセスするために使用できるウェブブラウザ・アプリケーションなど、ソフトウェア機能性を含むことができる。したがって、これらの無線電話は、かなりのコンピューティング能力を含むことができる。]
[0004] ディジタル信号プロセッサ(DSP)は、無線電話など、携帯型パーソナル・コンピューティング装置で頻繁に使用される。こうしたDSPは、ビデオおよびオーディオ機能を提供し、受信されたデータを処理し、または他の機能を実施するために使用できる。こうしたDSPは、複数のプログラム命令スレッドを処理可能であり、並列実行ユニットを含み得るマルチスレッド・アーキテクチュアを使用できる。]
[0005] DSPは、実行された命令、周辺装置または他の回路素子から割込み信号を受け取るための割込みハンドラを含んでよい。こうした割込み信号は、検出されたイベントに応答するDSPプロセスの一時停止をトリガすることができる。DSPの各スレッドが専用の割込みハンドラまたはコントローラを含まない限り、割込みの処理によって、スケジューリングの複雑さが増すことになり得る。]
[0006] 特定の例示的な実施形態では、マルチスレッド・プロセッサの1つまたは複数のスレッドに関連する命令を提供するように適応されたシーケンサを含むマルチプロセッサが開示される。シーケンサは、1つまたは複数の割込みを受け取り、1つまたは複数のスレッドのうちの第1のスレッドが1つまたは複数の割込みのうちの少なくとも1つの割込みを処理することを選択的に可能にするように適応された割込みコントローラを含む。割込みコントローラは、割込みが第1のスレッドによる処理対象に選択された後、1つまたは複数のスレッドのうちの第2のスレッドが割込みに応答することを防ぐための論理回路を含む。]
[0007] 別の特定の例示的な実施形態では、プロセッサは、1つまたは複数の割込みを受け取るために1つまたは複数の割込み発生源に応答するグローバル割込みレジスタを含む。グローバル割込みレジスタは、1つまたは複数の割込みを処理するためにマルチスレッド・プロセッサの各スレッドによってアクセス可能である。割込み論理は、マルチスレッド・プロセッサのスレッドによって割込みが処理されていると決定し、割込みが処理されているという決定に基づいて他のスレッドによる割込みへのアクセスを防止するために、グローバル割込みレジスタに結合される。]
[0008] 別の特定の例示的な実施形態では、マルチスレッド・プロセッサ内で割込みを制御する方法が、マルチスレッド・プロセッサに関連するシーケンサ上で割込みを受け取ることを含む。この方法はさらに、割込みが複数のスレッドのうちの第1のスレッドによって処理されていると決定した後、第2のスレッドによる割込みへのアクセスを防止することを含む。シーケンサは、マルチスレッド・プロセッサの複数のスレッドからアクセス可能なグローバル割込みレジスタを含み、またシーケンサは、割込み制御回路を含む。]
[0009] 別の特定の例示的な実施形態では、マルチスレッド・プロセッサに関連するシーケンサ上で割込みを受け取るための手段を含む処理装置が開示される。シーケンサは、複数のスレッドからアクセス可能なグローバル割込みレジスタを含み、また割込み制御回路を含む。処理装置は、割込みが複数のスレッドのうちの第1のスレッドによって処理されていると決定した後、第2のスレッドによる割込みへのアクセスを防止するための手段をも含む。]
[0010] 別の特定の例示的な実施形態では、通信網と通信するためのトランシーバと、プロセッサによって実行可能な複数の命令を含むメモリとを含む無線通信装置が開示される。プロセッサは、トランシーバに結合されており、メモリへのアクセスを有する。プロセッサは、複数の命令から選択された命令を実行するように適応された複数のスレッドと、選択された命令を取り出し、複数のスレッドに提供するように適応されたシーケンサとを含む。シーケンサは、複数のスレッドの各スレッドからアクセス可能なグローバル割込みレジスタを含み、またグローバル割込みレジスタに結合された割込みコントローラを含む。割込みコントローラは、複数のスレッドのうちのあるスレッドがいつ割込みを処理しているか決定し、複数のスレッドのうちの他のスレッドによる割込みへのアクセスを防止するためにグローバル割込みレジスタを使用するように適応される。]
[0011] 別の特定の例示的な実施形態では、割込み論理レベルを示す第1の構成レジスタと、割込みトリガを示す第2の構成レジスタとを含むプロセッサが開示される。プロセッサは、複数のビットの各ビットが特定の割込みに対応する複数のビットを含む、自動ディセーブル割込みレジスタをも含む。プロセッサは、割込み論理レベル、割込みトリガ、および特定の割込みに対応するビットに基づいて、複数の実行スレッドを含むマルチスレッド・プロセッサの第1のスレッドに割込みを提供するための処理論理をさらに含む。処理論理は、特定の割込みが第1のスレッドによって処理されているとき、特定の割込みに対応するビットを設定し、第1のスレッドによって特定の割込みが処理されている間、複数の実行スレッドのうちの他のスレッドによるアクセスを防止する。]
[0012] グローバル割込みレジスタおよび関連する論理の実施形態によって提供されるある特定の利点は、グローバル割込みレジスタのビットを使用して、異なるスレッドによって特定の割込みを複数回処理することを防止できるということにある。]
[0013] 特定の実施形態の別の利点は、スレッド固有のレジスタ内のビットをディセーブル(Disable)することに対応し得る、ブローバル割込みレジスタ内に割込みビットフラグを設定することによって、マルチスレッド処理環境内の割込み処理を単純かつ効率的なやり方で管理できるということにある。]
[0014] 現在の開示の他の態様、利点および特徴は、以下の節、すなわち図面の簡単な説明、発明を実施するための形態、特許請求の範囲を含めて、本出願全体をよく読んだ後、明らかになろう。]
図面の簡単な説明

[0015] 共有割込みコントローラを含むマルチスレッド・プロセッサの特定の例示的な実施形態を示すブロック図。
共有割込みコントローラを含むマルチスレッド・プロセッサの第2の特定の例示的な実施形態を示すブロック図。
共有割込みコントローラの特定の例示的な実施形態を示すブロック図。
共有割込みコントローラを使用して割込みを処理する方法の特定の例示的な実施形態のフローチャート。
無線通信装置の特定の例示的な実施形態を示すブロック図。]
実施例

[0016] 図1を参照すると、マルチスレッド・プロセッサ100が開示されている。特定の例示的な実施形態では、マルチスレッド・プロセッサ100は、ディジタル信号プロセッサであってよい。マルチスレッド・プロセッサ100は、命令キュー134を有するメモリ102と、メモリバス106と、シーケンサ・ユニット104と、複数の実行ユニット108〜114と、第1のバス118と、統一レジスタ・ファイル116と、第2のバス120とを含む。シーケンサ104は、制御レジスタ160に結合される。シーケンサ104は、グローバル割込みレジスタ・ファイル162と、共有割込みコントローラ164とを含む。メモリ102は、第2のバス120に結合され、シーケンサ104もまた、第2のバス120に結合される。] 図1
[0017] 特定の実施形態では、メモリバス106は、64ビットバスとすることができ、シーケンサ104は、メモリ102から命令を取り出すように構成されてよい。特定の例示的な実施形態では、それぞれの命令は、32ビットの長さを有し得る。シーケンサ104は、第1のパス(スロット0)を介して第1の命令実行ユニット108に、第2のパス(スロット1)を介して第2の命令実行ユニット110に、第3のパス(スロット2)を介して第3の命令実行ユニット112に、第4のパス(スロット3)を介して第4の命令実行ユニット114に結合される。それぞれの命令実行ユニット108、110、112、114は、第1のバス118を介して汎用レジスタ・ファイル116に結合されてよい。汎用レジスタ・ファイル116もまた、第2のバス120を介してシーケンサ104およびメモリ102に結合されてよい。]
[0018] 特定の実施形態では、メモリ102は、第1の命令キャッシュ122と第2の命令キャッシュ124と第3の命令キャッシュ126と第4の命令キャッシュ128と第5の命令キャッシュ130と第6の命令キャッシュ132とを含む連想記憶メモリ(CAM:content addressable memory)であってよい。動作において、シーケンサ104は、命令キャッシュ122、124、126、128、130、132の各々にアクセスすることができる。さらに、特定の実施形態では、それぞれの命令キャッシュ122、124、126、128、130、132は、複数の命令と、各命令の命令ステアリングデータと、各命令のプリデコードデータとを含む。メモリ102内の命令キュー134は、各命令キャッシュ122、124、126、128、130、132の命令キューを含んでよい。]
[0019] 図1に示されたように、汎用レジスタ116は、第1の統一レジスタ・ファイル148と、第2の統一レジスタ・ファイル150と、第3の統一レジスタ・ファイル152と、第4の統一レジスタ・ファイル154と、第5の統一レジスタ・ファイル156と、第6の統一レジスタ・ファイル158とを含む。それぞれの統一レジスタ・ファイル148、150、152、154、156、158は、メモリ102内のそれぞれの命令キャッシュ122、124、126、128、130、132に対応する。それぞれの統一レジスタ・ファイル148、150、152、154、156、158およびそれぞれの命令キャッシュ122、124、126、128、130、132は、それぞれのスレッドに対応する。さらに、特定の実施形態では、統一レジスタ・ファイル148、150、152、154、156、158はそれぞれ、同じ構造を有することができ、等しい数のデータ・オペランドおよびアドレス・オペランドを含んでよい。] 図1
[0020] 図1は、マルチスレッド・プロセッサ100が、シーケンサ104に結合された制御レジスタ160をさらに含み得ることを示している。図示されたように、制御レジスタ160は、スタンドアロンのレジスタであってよい。あるいは、制御レジスタは、汎用レジスタ116内に含まれてもよい。図示されるように、マルチスレッド・プロセッサ100は、共有割込みコントローラ164などの制御論理を含むこともできる。例示的な実施形態では、共有割込みコントローラ164は、グローバル割込みレジスタ162に結合される。共有割込みコントローラ164は、実行ユニット108、110、112、114による各特定の割込みへのアクセスを制御するように動作することができる。] 図1
[0021] マルチスレッド・プロセッサ100の動作中、命令が、シーケンサ104によってメモリ102からフェッチされ、選択された命令実行ユニット108、110、112、114に送られ、命令実行ユニット108、110、112、114上で実行される。各命令実行ユニット108、110、112、114上で実行された命令からの結果は、汎用レジスタ116に(すなわち統一レジスタ・ファイル148、150、152、154、156、158のうちの1つに)書き込むことができる。特定の実施形態では、マルチスレッド・プロセッサ100は、複数のプログラム・スレッドを実行することができる。さらに、特定の実施形態では、マルチスレッド・プロセッサ100は、インタリーブ方式で最大6つの異なるプログラム・スレッドを実行するように構成することができる。]
[0022] シーケンサ104は、マルチスレッド・プロセッサ100の1つまたは複数のスレッドに関連する命令を提供するように適応される。シーケンサ104は、1つまたは複数の割込みを受け取るように適応された割込みコントローラ164を含む。1つまたは複数の割込みは、マルチスレッド・プロセッサ100のスレッドに、通常の処理をそのままにさせ、特定の割込みに応答するソフトウェア・ルーチンであってよい割込みハンドラの実行を開始させることができるハードウェア信号を意味し得る。こうした割込みは、命令実行から、周辺装置から、回路部品から、またはその任意の組合せから生成され得る。割込みは、バスのタイプおよび割込みレベルによってパラメータ化することができ、割込みベクトル番号を含んでよい。]
[0023] 特定の例示的な実施形態では、1つまたは複数の割込みが共有割込みコントローラ164によって受け取られ、または検出されるとき、共有割込みコントローラ164は、1つまたは複数のスレッドのうちの第1のスレッドが1つまたは複数の割込みのうちの特定の割込みを処理することを選択的に可能にするように適応される。特定の実施形態では、割込みコントローラ164は、特定の割込みが第1のスレッドによる処理対象に選択された後、第2のスレッドが特定の割込みに応答することを防ぐための論理を含む。]
[0024] 特定の実施形態では、共有割込みコントローラ164は、複数の実行ユニットおよび複数のスレッド間で共有される。共有割込みコントローラ164は、複数の実行ユニットのそれぞれについて構成され得る複数の動作モードを含むことができる。第1の動作モードは、論理低レベルから論理高レベルへのエッジ遷移によってトリガされる論理高レベルで共有割込みコントローラ164が割込みに応答する、割込みアクティブ・ハイエッジ・トリガモードを含む。第2の動作モードは、論理高レベルから論理低レベルへのエッジ遷移によってトリガされる論理低レベルで共有割込みコントローラ164が割込みに応答する、割込みアクティブ・ローエッジ・トリガモードを含む。第3の動作モードは、論理高レベルで維持される割込みに割込みコントローラ164が応答する、アクティブ高レベル・トリガモードを含む。第4の動作モードは、論理低レベルで維持される割込みに共有割込みコントローラ164が応答する、論理低レベル・トリガモードを含む。]
[0025] 特定の実施形態では、共有割込みコントローラ164は、グローバル割込みレジスタ162、および割込み保留レジスタ(図2に示された割込み保留レジスタ(IPEND:interrupt pending register)210など)内でフラグを設定し、または変更するための論理を含む。グローバル割込みレジスタ162は、割込み自動ディセーブル・レジスタ212(図2)および324(図3)など、割込み自動ディセーブル・レジスタを含むこともできる。フラグは、特定のスレッドが特定の割込みを処理していることを示すためにグローバル割込みレジスタ162内に設定されてよい。一般に、それぞれのフラグは、処理され得る1つまたは複数の割込みのうちの少なくとも1つに対応する。共有割込みコントローラ164は、特定の許可されたスレッドが割込みを処理している間、別のスレッドが特定の割込みを処理することを防ぐように適応される。第1のスレッドについてフラグが設定されると、共有割込みコントローラ164の制御論理は、第1のスレッドがこうした割込みの処理を完了するまで、第2のスレッドなど、他のいずれかのスレッドが割込みに応答することを妨げる。さらに、共有割込みコントローラ164は、割込みが処理されている間、グローバル割込みレジスタ162内で、割込みに対応する特定のビットの状態を維持することができる。] 図2 図3
[0026] グローバル割込みレジスタ162は、割込みを取ることができる複数のスレッドの各スレッドからアクセス可能である。マルチスレッド・プロセッサ100が、上述された第3および第4のモードなど、レベル・トリガモードで動作している場合、共有割込みコントローラ164は、第1のスレッドが特定の割込みを処理しているとき、グローバル割込みレジスタ162内でビットを維持することができる。共有割込みコントローラ164に関連する論理は、割込みが処理されている間、他のスレッドが特定の割込みを処理することを防ぎ、それによって、割込みを複数回を処理することを防止することができる。共有割込みコントローラ164は、割込み保留レジスタの少なくとも1つのビットを、特定のスレッドがいつ割込みを処理しているか示すように制御するための論理を含む。特定の実施形態では、割込み保留レジスタ内の制御ビットは、関連するスレッドによって処理されている特定の割込みがディアサートされるとき、自動的にクリアされる。]
[0027] 図2を参照すると、マルチスレッド・プロセッサ200内でスレッド・イベントおよび割込みを処理するためのシーケンサ、論理および関連レジスタに関するさらなる詳細が示されている。マルチスレッド・プロセッサ200は、シーケンサ202とスレッド・イベント処理論理204とを含む。シーケンサ202は、共有割込みコントローラ208とグローバル制御レジスタ206とを含む。グローバル制御レジスタ206は、割込み保留レジスタ210と、割込み自動的ディセーブル・レジスタ212と、モード制御レジスタ214とを含む。シーケンサ202は、マルチスレッド・プロセッサの各スレッドに対応するスレッド・イベント処理モジュールを含み得るスレッド・イベント処理モジュール204と通信する。それぞれのスレッド・イベント処理モジュール204は、割込みマスク・レジスタ216と、プロセス・イベント・レジスタ218と、複数の汎用レジスタ220(R0〜R31)と、監視制御レジスタ222とを含む。] 図2
[0028] 特定の実施形態では、グローバル割込みレジスタ206は、1つまたは複数の割込みを受け取るために、1つまたは複数の割込み発生源に応答する。1つまたは複数の割込み発生源は、プロセッサの特定の実行ユニットによって実行された命令であっであってもよいし、注意を要する周辺装置であっても、その任意の組合せであってもよい。グローバル割込みレジスタ206は、1つまたは複数の割込みを処理するためにマルチスレッド・プロセッサ200の複数の使用可能なスレッドの各スレッドによってアクセス可能である。]
[0029] 一般に、割込み自動ディセーブル・レジスタ212は、特定の割込みへのアクセスを防ぐように設定されてよい複数のビットを含む。割込み自動ディセーブル・レジスタ212は、マルチスレッド・プロセッサ200のスレッドが割込みの処理を開始するとき、特定の割込みに対応するビットフラグを自動的に設定することができる。割込み自動ディセーブル・レジスタ212のビットフラグは、グローバル割込みレジスタ206のビットに一致し得る。さらに、割込み自動ディセーブル・レジスタ212のビットフラグは、共有割込みコントローラ208によって、割込みの処理が完了するまでビットフラグの状態を維持するように制御されてよい。]
[0030] 共有割込みコントローラ208は、グローバル割込みレジスタ206に結合された割込み論理を含む。共有割込みコントローラ208の割込み論理は、複数の潜在的割込みのうちの1つの特定の割込みがマルチスレッド・プロセッサの特定のスレッドによって処理されていると決定するためのものである。共有割込みコントローラ208は、割込みが第1のスレッドによって処理されているという決定に基づいて、複数の使用可能なスレッドのうちの他のスレッドによる処理割込みへのアクセスを防止する。特定の例示的な実施形態では、共有割込みコントローラ208は、割込みが処理中になると特定の割込みへのアクセスを制限するために、割込み自動ディセーブル・レジスタ212のビットフラグを使用してよい。たとえば、特定のスレッドが特定の割込みの処理中になると、追加のスレッドが特定の割込みにアクセスすることを防ぎ、それによって割込み処理ブロッキング能力を提供することができる。]
[0031] 特定の例示的な実施形態では、割込み自動ディセーブル・レジスタ212は、処理される特定の割込みに関連する複数のビットのうちの選択されたビットを設定するために、共有割込みコントローラ208によってアクセス可能である。選択されたビットは、割込みが処理されていることを示し、共有割込みコントローラ208内の論理は、割込みが処理されている間、他のスレッドが割込みにアクセスするのを防止する。特定の代替実施形態では、選択されたビットが設定される場合、他のスレッドが選択された割込みにアクセスし、または処理することを防止するためのブロッキング論理が、割込み自動ディセーブル・レジスタ212内に設けられてもよいし、それに関連する別の位置に設けられてもよい。]
[0032] 共有割込みコントローラ208は、特定の割込みがディアサートされた後、割込み自動ディセーブル・レジスタ212内の選択されたビットをクリアする命令を受け取るように適応された論理を含んでよい。たとえば、割込みは、バッファが一杯な場合、アサートされ得る。たとえば、そのバッファが一杯な場合、ネットワークからデータを受け取る装置は、割込みを生じさせることができ、バッファが空になったとき、割込みをディアサートしてよい。たとえば、割込みが論理ハイ信号である場合、周辺装置は、割込みの論理レベルを論理ロー信号に変更し、それによって割込みをディアサートすることができる。共有割込みコントローラ208は、ディアサートされた割込みに応答して、実行ユニットからの処理完了表示に応答して、クリアビット命令の受信に応答して、またはその任意の組合せに応答して、選択されたビットをクリアすることができる。別の特定の例示的な実施形態では、実行ユニットは、割込みが処理されたとき、割込み保留レジスタ210内のビットを自動的にクリアすることができる。]
[0033] 割込み保留レジスタ210は、複数のビットをも含む。割込み保留レジスタ210の複数のビットの各ビットは、マルチスレッド・プロセッサ200の特定の割込みのステータスを示す。割込み保留レジスタ210は、特定の割込みに関連するステータスを決定するための周辺装置またはソフトウェアからアクセス可能であってよい。さらに、共有割込みコントローラ208の割込み論理は、特定の割込みに対応する選択されたビットを設定またはクリアするために割込み保留レジスタ210へのアクセスを有する。特定の例示的な実施形態では、検出された割込みは、割込み保留レジスタ210内に格納されたフラグによって表されたソフトウェア割込みであってよい。割込み保留レジスタ210内の特定のフラグは、アサートされたソフトウェア割込みについてのステータス・インジケータをソフトウェアが提供することを可能にするために、ソフトウェアからアクセス可能であってよい。]
[0034] たとえば、周辺装置に関連する「新しいハードウェア検出」タイプのステータス・インジケータが、マルチスレッド・プロセッサ200によって実行されるソフトウェア・アプリケーション(コンピューティング装置のオペレーティング・システム・ソフトウェアなど)内のポップアップ・インジケータとして提供されてよい。マルチスレッド・プロセッサ200は、新しいハードウェア検出の割込みを処理し、新しいハードウェア・インストールルーチンを実行し、インストールが成功するとフラグをクリアすることができる。インストール・プロセスおよびインストールの成功は、ソフトウェア・アプリケーションによってポップアップまたは他のインジケータ内に反映され得る割込み保留レジスタ210内のビットによって反映することができる。ステータスは、ソフトウェアによって、割込み保留レジスタ210内の特定のフラグのステータスに基づいて決定されてよい。]
[0035] 図3を参照すると、割込みコントローラ300の割込みを処理するための特定の機能性が示されている。このシステムは、第1のセレクタ306と、第2のセレクタ316と、割込み出力322と、割込み保留レジスタ出力機構332とを含む。第1のセレクタ306は、制御入力308を介して割込みハイ/ローモード制御モジュール302から制御信号を受け取る多重化装置であってよい。第2のセレクタ316は、第2の制御入力318を介して割込みエッジ/レベルモード制御304から制御信号を受け取る多重化装置であってよい。第1のセレクタ306は、入ってくる割込み310に応答し、エッジ検出回路312およびレベル検出回路314に出力を供給する。エッジ検出回路およびレベル検出回路の312、314の出力は、第2のセレクタ316に提供され、割込みエッジ/レベルモード制御304からの第2の制御入力318に基づいて選択される。入ってくる割込み310に関連した、検出されたエッジまたはレベルは、論理積ゲートなど、論理回路320に供給される。出力は、割込み保留レジスタ出力332を介して割込み保留レジスタに供給することもできる。] 図3
[0036] 割込みコントローラ300は、割込み自動ディセーブル・レジスタ324と、割込みマスク(IMASK:interrupt mask)レジスタ326と、スレッド単位の割込みイネーブル・レジスタ328と、グローバル割込みレジスタ・イネーブル/ディセーブル・レジスタ330をも含む。自動ディセーブル・レジスタ324は、割込みがマルチスレッド・プロセッサのスレッドによって取られる(すなわち処理されている)場合に自動的に設定されるビットを含んでよい。IMASKレジスタ326は、特定のハードウェアスレッドに特定の割込みを向けるためのソフトウェアによって設定可能なビットを含んでよい。論理回路320は、入ってくる割込み310の検出されたエッジまたはレベルを割込み出力322に選択的に供給するために、割込み自動ディセーブル・レジスタ324、IMASKレジスタ326、スレッド単位割込みイネーブル・レジスタ328、およびグローバル割込みイネーブル/ディセーブル・レジスタ330に応答する。]
[0037] 特定の例示的な実施形態では、入ってくる割込み310は、多重化装置回路であってよい第1のセレクタ306で受け取られる。入ってくる割込み310は、図示されたように、正の入力と反転入力の両方で受け取られる。第1のセレクタ306は、制御信号308を介して割込みハイ/ローモード制御ユニット302によって、正の入力または反転入力をエッジ検出回路312およびレベル検出回路に選択的に供給するように制御される。割込み制御のハイ/ロー動作モードに従って、入ってくる割込み310の出力がエッジ検出回路312およびレベル検出回路314に供給されることになる。エッジ検出回路312およびレベル検出回路314からの出力は、第2のセレクタ316に供給される。第2のセレクタ316は、エッジ検出回路312またはレベル検出回路314のからの出力のうちの1つを論理回路320の入力に選択的に供給するために、制御信号318を介して割込みエッジ/レベルモード制御ユニット304からの制御入力に応答する。第2のセレクタ316の出力も割込み保留レジスタ出力332に供給される。割込み自動ディセーブル・レジスタ324、IMASKレジスタ326、スレッド単位割込みイネーブル・レジスタ328、グローバル割込みレジスタ・イネーブル/ディセーブル・レジスタ330からの信号の組合せによって、割込み信号が出力322に供給されるかどうか決まる。]
[0038] 一般に、割込みハイ/ローモード制御回路302および割込みエッジ/レベルモード制御回路304は、第1および第2のセレクタ306、316を制御するために協力して、割込み制御回路300の動作モードを制御する。一般に、割込み制御回路300は、以下の4つのモードのうちの1つを使用して割込みを処理することができる:ローからハイへのエッジ遷移で割込みに応答する割込みハイエッジ検出モード;論理ハイ値で割込みに応答する割込み高レベル検出モード;ハイからローへのエッジ遷移で割込みに応答する割込みローエッジ検出モード;および論理ロー値で割込みに応答する割込み低レベル検出モード。割込み自動ディセーブル・レジスタ324は、割込みがマルチスレッド・プロセッサの別のスレッドによって処理されている場合、第2のセレクタ316の出力が割込み出力322に達するのを防止するために、論理ゲート320に論理ロー信号を提供するために設定され得るフラグビットを含んでよい。さらに、グローバル割込みレジスタ・イネーブル/ディセーブル330は、第2のセレクタ316の出力が割込み出力322に達するのを防止するために、論理ゲート320に別のスレッドが割込みを処理していることを示すビットフラグを提供することができる。したがって、グローバル割込みレジスタ330および割込み自動ディセーブル・レジスタ324は、マルチスレッド・プロセッサの複数のスレッドが同じ割込みを処理するのを防止するために協力することができる。さらに、割込み自動ディセーブル・レジスタ324は、グローバル割込みレジスタ330の対応するビットが設定されるとき、割込み自動ディセーブル・レジスタ324内のフラグをクリアするために、グローバル割込みレジスタ330内のフィールドまたはビットに応答し得る。あるいは、割込み自動ディセーブル・レジスタ324は、処理される割込みに他のスレッドがアクセスすることを防止するためにグローバル割込みレジスタ330の対応するビットが変化する場合でも、特定のレジスタが、それが処理している特定の割込みにアクセスし続けることを可能にするスレッド固有のビットを含んでよい。]
[0039] 特定の例示的な実施形態では、割込み出力322の信号は、割込み自動ディセーブル・レジスタ324、IMASKレジスタ326、割込みイネーブル・レジスタ(スレッド単位)328およびグローバル割込みレジスタ(イネーブル/ディセーブル)330に関連して、第2のセレクタ316の出力で検出された割込みに対して論理ゲート320によって実施される論理演算によって決定され得る。たとえば、割込み自動ディセーブル・レジスタ324、IMASKレジスタ326、割込みイネーブル・レジスタ328およびグローバル割込みレジスタ330内でビットを制御し、論理ゲート320を使用して論理積演算を実施することによって、割込み出力322は、特定の条件が満たされる場合に限り、入ってくる割込み310を割込み出力322で供給するように制御することができる。このように、特定のスレッドが割込みの処理を開始し始めると、割込みコントローラ300は、他のスレッドが割込みを受け取るのを防止することができる。特定の例示的な実施形態では、割込みイネーブル・レジスタ328、IMASKレジスタ326および割込み自動ディセーブル・レジスタ324は、スレッド単位制御レジスタであり得るが、グローバル割込みレジスタは共有されてよい。]
[0040] 特定の例示的な実施形態では、マルチスレッド・プロセッサは、複数命令スレッドを処理するための複数の実行ユニットを含んでよい。マルチスレッド・プロセッサは、周辺装置、命令実行ユニット、他の回路部品またはその任意の組合せから受け取られた割込みを処理するための割込みコントローラ300を含んでよい。割込みコントローラ300は、割込み論理レベル(すなわちハイ論理レベルまたはロー論理レベル)を示す割込みハイ/ローモード制御レジスタ302など、第1の構成レジスタを含んでよい。割込みコントローラ300は、割込みトリガ(すなわちエッジトリガまたはレベルトリガ)を示す割込みエッジ/レベルモード制御レジスタ304など、第2の構成レジスタを含むこともできる。割込みコントローラ300は、複数のビットの各ビットが特定の割込みに対応する複数のビットを含む自動ディセーブル割込みレジスタ324を含むこともできる。割込みコントローラ300は、受け取られた割込み(たとえば入ってくる割込み310)を割込み論理レベル、割込みトリガ、および特定の割込みに対応するビットに基づいてマルチスレッド・プロセッサの第1のスレッドに選択的に供給するために、第1のセレクタ306、第2のセレクタ316、エッジ検出回路312、レベル検出回路314および論理ゲート320などの処理論理を含むこともできる。自動割込みコントローラ300または割込み自動ディセーブル・レジスタ324は、特定の割込みが第1のスレッドによって処理されているとき、特定の割込みに対応するビットを設定するための論理を含むこともできる。論理ゲート320を含めて処理論理は、第1のスレッドが特定の割込みを処理している間、複数の実行スレッドの他のスレッドによるアクセスを防止するように協力することができる。]
[0041] 図4を参照すると、共有割込みコントローラを含むマルチスレッド・プロセッサを動作させる方法が示されている。この方法は、402に示されたように、複数のスレッドを有するマルチスレッド・プロセッサに関連するシーケンサ上で割込みを受け取ることを含む。シーケンサは、複数のスレッドからアクセス可能なグローバル割込みレジスタを含み、また割込み制御回路を含む。この方法はさらに、404で、グローバル割込みレジスタ内に、受け取られた割込みに関連するビットを設定することをさらに含む。406に進んで、この方法は、第1のスレッドが割込みを処理していると決定した後、複数のスレッドの第2のスレッドによる割込みへのアクセスを防止することを含む。特定の例示的な実施形態では、シーケンサは、グローバル割込みレジスタ内の選択されたビットの状態を維持するように適応された共有割込みコントローラを含んでよい。さらに、共有割込みコントローラは、第1のスレッドが既に割込みを処理している場合、マルチスレッドのプロセッサの他のスレッドが割込みを処理するのを防止するための論理演算で使用され得るビットフラグを割込み自動ディセーブル・レジスタ内に設定するように適応されてよい。408へと続いて、この方法は、割込み保留レジスタ内の第1のスレッドによって取られた割込みに関連する第2のビットを設定することをさらに含む。割込み保留レジスタは、特定の実行ユニット、ソフトウェア・アプロセス、またはその任意の組合せからアクセス可能であってよい。特定の実施形態では、ソフトウェア・アプロセスは、たとえば、割込み処理のステータスを決定し、ユーザに視覚インジケータを提供するために、割込み保留レジスタ内のビットにアクセスしてよい。この方法は、410で終了する。] 図4
[0042] 406で第2のスレッドへのアクセス防止について言及されているが、共有割込みコントローラは、第1のスレッドが特定の割込みを処理している間、特定のスレッドまたは他のすべてのスレッドに対して特定の割込みへのアクセスを防止できることを理解されたい。さらに、ビットは、割込み保留レジスタ内で、第1のスレッドが割込みを処理していることを示すように設定される。割込み保留レジスタ内に設定されたビットは、グローバル割込みレジスタ内の割込みフラグに関連するフラグクリア命令が受け取られた後、クリアされてよい。自動ディセーブル・レジスタの対応するフラグもまた、フラグクリア命令が処理されるときクリアされてよい。割込み自動ディセーブル・レジスタは、対応するグローバル割込みレジスタ内に設定されたビットに基づいて割込みへのアクセスを防止するために使用できる。一般に、共有割込みコントローラおよびグローバル割込みレジスタは、マルチスレッド・プロセッサの複数のスレッドによる特定の割込みへのアクセスを制御するために使用できる。このように、第1のスレッドは、特定の割込みを処理することができ、次いで、他のスレッドは、特定の割込みにアクセスできなくなる。]
[0043] 図5を参照すると、無線通信装置500が示されている。無線通信装置500は、アンテナ542を介して通信ネットワークと通信するために、無線制御装置540、および関連するトランシーバを含む。無線通信装置500は、ディジタル信号プロセッサ510などのプロセッサによって実行可能な複数の命令を含むメモリ532をも含む。プロセッサは、トランシーバに結合され、メモリ532へのアクセスを有する。プロセッサは、選択された命令を実行するように適応された複数の実行ユニットを含む。特定の実施形態では、プロセッサ510は、シーケンサ511を含むマルチスレッド・プロセッサである。シーケンサは、グローバル割込みレジスタ513を含み、また割込み論理回路515を含む。シーケンサ511は、選択された命令を取り出し、ディジタル信号プロセッサ510の複数の実行ユニットに提供するように適応される。割込み論理回路515は、グローバル割込みレジスタ513に結合され、ディジタル信号プロセッサ510の特定のスレッドがいつ割込みを処理するか決定するように適応される。割込み論理回路515は、他のスレッドによる割込みへのアクセスを防止するためにグローバル割込みレジスタ513を使用するように適応される。別の実施形態では、グローバル割込みレジスタ513は、割込み自動ディセーブル・レジスタ(IAD:interrupt automatic disable register)を含む。IADレジスタは、対応する複数の割込みに関連する複数のビットを含むことができる。割込み論理回路515は、スレッドが、それに関連する対応する割込みを処理しているとき、IADレジスタ内の複数のビットのうちの1つのビットにアクセスするように適応される。] 図5
[0044] 図5は、ディジタル信号プロセッサ510および表示装置528に結合された表示コントローラ526をも示している。さらに、入力装置530は、ディジタル信号プロセッサ510に結合される。コーダ/デコーダ(CODEC)534もまた、ディジタル信号プロセッサ510に結合されてよい。スピーカ536およびマイクロホン538は、CODEC 534に結合されてよい。] 図5
[0045] 図5は、無線コントローラ540がディジタル信号プロセッサ510および無線アンテナ542に結合され得ることをも示している。特定の実施形態では、電源544は、オンチップシステム522に結合される。さらに、特定の実施形態では、図5に示されたように、表示装置528、入力装置530、スピーカ536、マイクロホン538、無線アンテナ542および電源544は、オンチップシステム522の外部にある。しかし、それぞれが、オンチップ・システム522のコンポーネントに結合されている。] 図5
[0046] シーケンサ511、グローバル割込みレジスタ513および割込み論理回路515は、ディジタル信号プロセッサ510内にしか示されていないが、シーケンサ511、グローバル割込みレジスタ513および割込み論理回路515は、制御要素、汎用処理回路、またはマルチスレッド・プロセッサ機能性を含む他の任意のコンポーネントを含めて、他のコンポーネント内に設けられもよいことを理解されたい。]
[0047] 本明細書に開示された諸実施形態に関連して述べられた様々な例示的な論理ブロック、構成、モジュール、回路およびアルゴリズム・ステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてよいことが当業者にはさらに理解されよう。ハードウェアとソフトウェアのこの交換可能性について明確に示すために、様々な例示的なコンポーネント、ブロック、構成、モジュール、回路およびステップについて、その機能性に関して上記に一般的に述べられている。こうした機能性がハードウェアとして実装されるか、それともソフトウェアとして実装されるかは、システム全体に課された特定の応用例および設計上の制約に依存する。当業者は特定の各応用例について様々なやり方で、述べられた機能性を実施することができるが、こうした実装の決定は、本開示の範囲からの逸脱をもたらすものと解釈すべきではない。]
[0048] 本明細書に開示された諸実施形態に関して述べられた方法またはアルゴリズムの諸ステップは、ハードウェア、プロセッサによって実行されるソフトウェア・モジュール、またはその2つの組合せで直接に実施することができる。ソフトウェア・モジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、PROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能ディスク、CD−ROM、あるいは当技術分野において知られている他の任意の形の記憶媒体に常駐してよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み出し、そこに情報を書き込むことができるようにプロセッサに結合される。別法では、記憶媒体は、プロセッサと一体化されてよい。プロセッサおよび記憶媒体は、ASICに常駐してよい。ASICは、コンピューティング装置に常駐することも、ユーザ端末に常駐することもある。別法では、プロセッサおよび記憶媒体は、コンピューティング装置またはユーザ端末内の個別部品として常駐してもよい。]
[0049] 開示された実施形態の上記説明は、当業者が本開示を作成しまたは使用できるようにするために提供されている。これらの実施形態への様々な修正が当業者には容易に明らかになり、本明細書で定義された一般的な原理は、本開示の精神または範囲から逸脱せずに他の実施形態に適用することができる。したがって、本開示は、本明細書に示された諸実施形態に限定されるものでないが、添付の特許請求の範囲に定義された原理および新規な特徴に一致する最も広い範囲が与えられるものである。]
权利要求:

請求項1
マルチスレッド・プロセッサの1つまたは複数のスレッドに関連する命令を提供するように適応されたシーケンサであって、1つまたは複数の割込みを受け取り、前記1つまたは複数のスレッドのうちの第1のスレッドが前記1つまたは複数の割込みのうちの少なくとも1つを処理することを選択的に可能にするための割込みコントローラを含む、シーケンサを備えるマルチスレッド・プロセッサであって、前記割込みコントローラが、前記少なくとも1つの割込みが前記第1のスレッドによる処理対象に選択された後、前記1つまたは複数のスレッドのうちの第2のスレッドが前記少なくとも1つ割込みに応答することを防ぐための論理を含む、マルチスレッド・プロセッサ。
請求項2
前記割込みコントローラが複数の動作モードを含む、請求項1に記載のプロセッサ。
請求項3
前記複数の動作モードの第1の動作モードが、論理ハイ割込みに応答する割込みアクティブハイモードを備える、請求項2に記載のプロセッサ。
請求項4
前記複数の動作モードの第2の動作モードが論理ロー割込みに応答する割込みアクティブローモードを備える、請求項2に記載のプロセッサ。
請求項5
前記複数の動作モードのうちの第3の動作モードが、信号エッジの立上りまたは立下りに応答するエッジトリガ動作モードを備える、請求項2に記載のプロセッサ。
請求項6
前記複数の動作モードの第4の動作モードが、信号のレベル部分に応答するレベルトリガ動作モードを備える、請求項2に記載のプロセッサ。
請求項7
前記割込みコントローラが、割込み保留レジスタ内に、前記1つまたは複数の割込みの少なくとも1つに対応するフラグを設定するように適応される、請求項1に記載のプロセッサ。
請求項8
前記フラグが、前記少なくとも1つの割込みが前記第1のスレッドによって処理されている間に設定される、請求項7に記載のプロセッサ。
請求項9
割込みを取るために前記1つまたは複数のスレッドの各スレッドからアクセス可能なグローバル割込みレジスタをさらに備え、前記割込みコントローラが、前記第1のスレッドが前記少なくとも1つの割込みを処理する間、前記第2のスレッドによる前記割込みへのアクセスを防止するように前記グローバル割当てレジスタを変更する、請求項1に記載のプロセッサ。
請求項10
前記1つまたは複数のスレッドのそれぞれに関連しており、前記割込みコントローラからアクセス可能である割込み保留レジスタをさらに備え、前記割込みコントローラが、前記第1のスレッドが前記少なくとも1つの割込みをいつ処理しているか示すように前記割込み保留レジスタのビットを制御する、請求項1に記載のプロセッサ。
請求項11
前記ビットが、前記スレッドによって処理された前記割込みがディアサートされた後、前記割込み保留レジスタから自動的にクリアされる、請求項10に記載のプロセッサ。
請求項12
1つまたは複数の割込みを受け取るために1つまたは複数の割込み発生源に応答し、前記1つまたは複数の割込みを処理するためにマルチスレッド・プロセッサの複数のスレッドの各スレッドによってアクセス可能である、グローバル割込みレジスタと、前記グローバル割込みレジスタに結合されており、前記1つまたは複数の割込みのうちの1つの割込みが前記マルチスレッド・プロセッサのうちのスレッドによって処理されていると決定し、前記複数のスレッドの他のいずれかのスレッドによって前記割込みへのアクセスを選択的に防止するための割込み論理とを備えるプロセッサ。
請求項13
前記グローバル割込みレジスタのビットに対応する複数のビットを含んでおり、前記複数のビットのうちの、前記割込みに関連する選択されたビットを設定するために割込み論理によってアクセス可能な割込み自動ディセーブル・レジスタをさらに備え、前記選択されたビットが、割込みが処理されていることを示し、前記論理が、前記割込みが処理されている間、前記他のスレッドが前記割込みにアクセスすることを防止する、請求項12に記載のプロセッサ。
請求項14
前記割込み論理が、前記割込みがディアサートされた後、前記選択されたビットをクリアする命令を受け取るように適応され、前記割込み論理が、前記命令の受取りに応答して前記選択されたビットをクリアする、請求項13に記載のプロセッサ。
請求項15
それぞれのビットが特定の割込みのステータスを示す複数のビットを含む割込み保留レジスタをさらに備え、前記割込み論理が、前記割込みに対応する選択されたビットを設定するために前記割込み保留レジスタへのアクセスを有する、請求項12に記載のプロセッサ。
請求項16
前記割込みがソフトウェア割込みを備え、前記割込み保留レジスタが、前記ソフトウェア割込みについてのステータス・インジケータを提供するためのソフトウェアからアクセス可能である、請求項15に記載のプロセッサ。
請求項17
マルチスレッド・プロセッサ内で割込みを制御する方法であって、マルチスレッド・プロセッサに関連するシーケンサ上で割込みを受け取ることであって、前記シーケンサが、前記マルチスレッド・プロセッサの複数のスレッドからアクセス可能なグローバル割込みレジスタを含み、また割込み制御回路を含むこと、および前記割込みが前記複数のスレッドのうちの第1のスレッドによって処理されていると決定した後、前記複数のスレッドのうちの第2のスレッドによる前記割込みへのアクセスを防止することを備える方法。
請求項18
前記グローバル割込みレジスタ内に、前記受け取られた割込みに関連するビットを設定することをさらに備える、請求項17に記載の方法。
請求項19
前記割込みが処理されていることを示すために、割込み保留レジスタ内に、前記第1のスレッドに関連するビットを設定することをさらに備える、請求項17に記載の方法。
請求項20
前記グローバル割込みレジスタ内に設定される割込みフラグに関連するフラグクリア命令を受けること、および自動ディセーブル・レジスタの対応するフラグをクリアすることをさらに備え、処理論理が、前記対応するフラグの状態に基づいて前記割込みへのアクセスを防止する、請求項17に記載の方法。
請求項21
前記割込みへのアクセス防止が、前記グローバル割込みレジスタの対応するビットに関するビットを割込み自動ディセーブル・レジスタ内に設定することを備え、処理論理が、前記グローバル割込みレジスタの前記対応するビットが設定されるとき前記割込みへのアクセスを防止する、請求項17に記載の方法。
請求項22
複数のスレッドを有するマルチスレッド・プロセッサに関連するシーケンサ上で割込みを受け取るための手段であって、前記シーケンサが、前記複数のスレッドからアクセス可能なグローバル割込みレジスタを含み、また割込み制御回路を含む、手段と、前記割込みが前記複数のスレッドのうちの第1のスレッドによって処理されていると決定した後、前記複数のスレッドのうちの第2のスレッドによる前記割込みへのアクセスを防止するための手段とを備える処理装置。
請求項23
前記割込みが処理されたことの表示を受け取るための手段と、前記表示の受取りに応答して前記割込みに対応する割込み自動ディセーブル・レジスタ内のビットをクリアするための手段と、をさらに備える、請求項22に記載の装置。
請求項24
前記受け取られた割込みと関連するビットを前記グローバル割込みレジスタ内に設定するための手段をさらに備える、請求項22に記載の装置。
請求項25
通信網と通信するトランシーバと、プロセッサによって実行可能な複数の命令を含むメモリと、前記トランシーバに結合され、前記メモリへのアクセスを有する前記プロセッサと、を備える無線通信装置であって、前記プロセッサが、前記複数の命令からの選択された命令を実行するように適応された複数のスレッドと、前記選択された命令を取り出し、前記複数のスレッドに提供するように適応されたシーケンサであって、前記複数のスレッドの各実行ユニットからアクセス可能なグローバル割込みレジスタを含み、また前記グローバル割込みレジスタに結合された割込みコントローラを含み、前記割込みコントローラが、前記複数のスレッドのうちの1つのスレッドが割込みをいつ処理しているか決定し、前記複数のスレッドの他のスレッドによる前記割込みへのアクセスを防止するために前記グローバル割込みレジスタを使用するように適応される、シーケンサと、を備える、無線通信装置。
請求項26
前記グローバル割込みレジスタが、対応する複数の割込みに関連する複数のビットを含む割込み自動ディセーブル(IAD)レジスタを備える、請求項25に記載の装置。
請求項27
前記割込みコントローラが、前記IADレジスタ内に前記複数のビットのうちの1つのビットを設定するように適応される、請求項25に記載の装置。
請求項28
割込み論理レベルを示す第1の構成レジスタと、割込みトリガを示す第2の構成レジスタと、各ビットが特定の割込みに対応する複数のビットを含む自動ディセーブル割込みレジスタと、前記割込み論理レベル、前記割込みトリガ、および前記特定の割込みに対応する前記ビットに基づいて、複数の実行スレッドを含むマルチスレッド・プロセッサの第1のスレッドに割込みを提供する処理論理であって、前記特定の割込みが前記第1のスレッドによって処理されている場合、前記特定の割込みに対応する前記ビットを設定し、前記特定の割込みが前記第1のスレッドによって処理されている間、前記複数の実行スレッドのうちの他のスレッドによるアクセスを防止する処理論理とを備えるプロセッサ。
請求項29
前記処理論理が、割込み発生源に応答する割込み入力と、出力と、入ってくる割込みを前記出力に選択的に提供するために前記第1の構成レジスタに応答する割込み論理レベル選択入力とを含む第1の多重化装置をさらに備える、請求項28に記載のプロセッサ。
請求項30
前記処理論理が、前記出力に結合されており、前記入ってくる割込みの立上りまたは立下りエッジを検出するように適応されたエッジ検出回路と、前記出力に結合されており、前記入ってくる割込みの論理レベルを検出するように適応されたレベル検出回路と、をさらに備える、請求項29に記載のプロセッサ。
請求項31
前記処理論理が、第2の割込み入力と、第2の出力と、前記入ってくる割込みに関連するデータを前記第2の出力に選択的に提供するために前記第2の構成レジスタに応答する割込みトリガ選択入力とを含む第2の多重化装置をさらに備える、請求項28のプロセッサ。
类似技术:
公开号 | 公开日 | 专利标题
US10049212B2|2018-08-14|Protection against return oriented programming attacks
US10656697B2|2020-05-19|Processor core power event tracing
JP6143872B2|2017-06-07|装置、方法、およびシステム
KR101908246B1|2018-10-15|시스템 메모리의 온도 제어
US9037837B2|2015-05-19|Hardware assist thread for increasing code parallelism
JP6199477B2|2017-09-20|System and method for using a hypervisor with a guest operating system and virtual processor
US8015391B2|2011-09-06|Simultaneous multiple thread processor increasing number of instructions issued for thread detected to be processing loop
KR100746797B1|2007-08-06|프로세서 및 정보처리 방법
US7653912B2|2010-01-26|Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations
EP1421490B1|2006-04-12|Methods and apparatus for improving throughput of cache-based embedded processors by switching tasks in response to a cache miss
US8713286B2|2014-04-29|Register files for a digital signal processor operating in an interleaved multi-threaded environment
EP1896919B1|2010-03-03|System and method of counting leading zeros and counting leading ones in a digital signal processor
US9747108B2|2017-08-29|User-level fork and join processors, methods, systems, and instructions
CN105074666B|2020-04-21|执行在具有不同指令集架构的处理器上的操作系统
US7152170B2|2006-12-19|Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
JP2017530436A|2017-10-12|異種共有仮想メモリにおけるオンデマンド共有可能性変換
US9940132B2|2018-04-10|Load-monitor mwait
US20200004991A1|2020-01-02|Control Transfer Termination Instructions Of An Instruction Set Architecture |
JP5172942B2|2013-03-27|プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム
US7490228B2|2009-02-10|Processor with register dirty bit tracking for efficient context switch
US9003421B2|2015-04-07|Acceleration threads on idle OS-visible thread execution units
US8438369B2|2013-05-07|Providing thread fairness by biasing selection away from a stalling thread using a stall-cycle counter in a hyper-threaded microprocessor
US8606998B2|2013-12-10|System and method for instruction-based cache allocation policies
JP2014197408A|2014-10-16|ロックインジケータを有するマルチスレッドプロセッサ
US7401207B2|2008-07-15|Apparatus and method for adjusting instruction thread priority in a multi-thread processor
同族专利:
公开号 | 公开日
EP2071456A3|2009-12-30|
JP5329563B2|2013-10-30|
US20080091867A1|2008-04-17|
US7984281B2|2011-07-19|
CN101918920B|2014-08-27|
CN101918920A|2010-12-15|
WO2009076531A2|2009-06-18|
EP2071456A2|2009-06-17|
WO2009076531A3|2009-07-30|
KR20100100959A|2010-09-15|
KR101146462B1|2012-05-21|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
JPS63298636A|1987-05-29|1988-12-06|Nec Corp|Interrupting circuit|
JPH05274245A|1992-01-28|1993-10-22|Toshiba Corp|マイクロコントローラユニット|
JPH10143375A|1996-11-14|1998-05-29|Nec Corp|割り込み制御回路|
JP2002073374A|2000-08-30|2002-03-12|Canon Inc|割り込みシミュレーション方法及び装置|
JP2006503385A|2002-10-15|2006-01-26|サンドブリッジテクノロジーズインコーポレーテッド|マルチスレッド・プロセッサの高速スレッド間割込みのための方法および装置|
US20070088938A1|2005-10-18|2007-04-19|Lucian Codrescu|Shared interrupt control method and system for a digital signal processor|JP2017538184A|2014-10-08|2017-12-21|インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation|入出力(i/o)割込みの改良型優先ルーティングを実施する方法、システムおよびプログラム|US4689739A|1983-03-28|1987-08-25|Xerox Corporation|Method for providing priority interrupts in an electrophotographic machine|
US4901307A|1986-10-17|1990-02-13|Qualcomm, Inc.|Spread spectrum multiple access communication system using satellite or terrestrial repeaters|
US5193187A|1989-12-29|1993-03-09|Supercomputer Systems Limited Partnership|Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers|
US5103459B1|1990-06-25|1999-07-06|Qualcomm Inc|System and method for generating signal waveforms in a cdma cellular telephone system|
JPH0743653B2|1990-07-25|1995-05-15|株式会社東芝|割込みコントローラ|
US5305455A|1990-12-21|1994-04-19|International Business Machines Corp.|Per thread exception management for multitasking multithreaded operating system|
US5524250A|1991-08-23|1996-06-04|Silicon Graphics, Inc.|Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers|
US5805922A|1994-05-02|1998-09-08|Motorola, Inc.|Queued serial peripheral interface having multiple queues for use in a data processing system|
US6260057B1|1995-03-01|2001-07-10|Sun Microsystems, Inc.|Apparatus and method for high performance implementation of system calls|
JPH0997177A|1995-09-29|1997-04-08|Toshiba Corp|コンピュータシステムの割り込み制御方式|
US6233599B1|1997-07-10|2001-05-15|International Business Machines Corporation|Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers|
US5904733A|1997-07-31|1999-05-18|Intel Corporation|Bootstrap processor selection architecture in SMP systems|
US6032245A|1997-08-18|2000-02-29|International Business Machines Corporation|Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads|
US6061710A|1997-10-29|2000-05-09|International Business Machines Corporation|Multithreaded processor incorporating a thread latch register for interrupt service new pending threads|
US6163829A|1998-04-17|2000-12-19|Intelect Systems Corporation|DSP interrupt control for handling multiple interrupts|
US6205519B1|1998-05-27|2001-03-20|Hewlett Packard Company|Cache management for a multi-threaded processor|
US6317820B1|1998-06-05|2001-11-13|Texas Instruments Incorporated|Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism|
US6480818B1|1998-11-13|2002-11-12|Cray Inc.|Debugging techniques in a multithreaded environment|
US6253304B1|1999-01-04|2001-06-26|Advanced Micro Devices, Inc.|Collation of interrupt control devices|
US7065633B1|1999-01-28|2006-06-20|Ati International Srl|System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU|
US6754690B2|1999-09-16|2004-06-22|Honeywell, Inc.|Method for time partitioned application scheduling in a computer operating system|
US7120783B2|1999-12-22|2006-10-10|Ubicom, Inc.|System and method for reading and writing a thread state in a multithreaded central processing unit|
US20010052053A1|2000-02-08|2001-12-13|Mario Nemirovsky|Stream processing unit for a multi-streaming processor|
US6839792B2|2000-12-15|2005-01-04|Innovative Concepts, Inc.|Data modem|
US20020103847A1|2001-02-01|2002-08-01|Hanan Potash|Efficient mechanism for inter-thread communication within a multi-threaded computer system|
US20020161957A1|2001-02-09|2002-10-31|Guillaume Comeau|Methods and systems for handling interrupts|
US20020144004A1|2001-03-29|2002-10-03|Gaur Daniel R.|Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing|
US7058948B2|2001-08-10|2006-06-06|Hewlett-Packard Development Company, L.P.|Synchronization objects for multi-computer systems|
US7120762B2|2001-10-19|2006-10-10|Wisconsin Alumni Research Foundation|Concurrent execution of critical sections by eliding ownership of locks|
JP4035004B2|2002-06-26|2008-01-16|株式会社ルネサステクノロジ|情報処理装置|
CN1720503A|2002-10-15|2006-01-11|沙桥技术有限公司|在多线程处理器中用于高速线程间中断的方法和设备|
US7203823B2|2003-01-09|2007-04-10|Sony Corporation|Partial and start-over threads in embedded real-time kernel|
US20050050305A1|2003-08-28|2005-03-03|Kissell Kevin D.|Integrated mechanism for suspension and deallocation of computational threads of execution in a processor|
US7774585B2|2003-11-12|2010-08-10|Infineon Technologies Ag|Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation|
US7487503B2|2004-08-12|2009-02-03|International Business Machines Corporation|Scheduling threads in a multiprocessor computer|
US8176489B2|2004-12-09|2012-05-08|International Business Machines Corporation|Use of rollback RCU with read-side modifications to RCU-protected data structures|
US20060206902A1|2005-03-14|2006-09-14|Sujat Jamil|Variable interleaved multithreaded processor method and system|
US7917907B2|2005-03-23|2011-03-29|Qualcomm Incorporated|Method and system for variable thread allocation and switching in a multithreaded processor|US7702889B2|2005-10-18|2010-04-20|Qualcomm Incorporated|Shared interrupt control method and system for a digital signal processor|
US8825926B2|2009-04-13|2014-09-02|Microchip Technology Incorporated|Processor with assignable general purpose register set|
JP4897851B2|2009-05-14|2012-03-14|インターナショナル・ビジネス・マシーンズ・コーポレーションInternationalBusinessMaschinesCorporation|コンピュータ・システム及びコンピュータ・システムの制御方法|
US8195909B2|2009-10-05|2012-06-05|Seagate Technology Llc|Data management in a data storage system|
US9189283B2|2011-03-03|2015-11-17|Hewlett-Packard Development Company, L.P.|Task launching on hardware resource for client|
US9645823B2|2011-03-03|2017-05-09|Hewlett-Packard Development Company, L.P.|Hardware controller to choose selected hardware entity and to execute instructions in relation to selected hardware entity|
US8738830B2|2011-03-03|2014-05-27|Hewlett-Packard Development Company, L.P.|Hardware interrupt processing circuit|
US8762615B2|2011-12-21|2014-06-24|International Business Machines Corporation|Dequeue operation using mask vector to manage input/output interruptions|
US9075639B1|2012-10-23|2015-07-07|Altera Corporation|Systems and methods for handling interrupts during software design simulation|
WO2014125324A1|2013-02-12|2014-08-21|Freescale Semiconductor, Inc.|A method of and circuitry for controlling access by a master to a peripheral, a method of configuring such circuitry, and associated computer program products|
US9223728B2|2013-03-12|2015-12-29|International Business Machines Corporation|Servicing a globally broadcast interrupt signal in a multi-threaded computer|
US9311138B2|2013-03-13|2016-04-12|Intel Corporation|System management interrupt handling for multi-core processors|
US8782294B1|2013-06-14|2014-07-15|Texas Instruments Incorporated|Intra-processor resource control|
US8782293B1|2013-06-14|2014-07-15|Texas Instruments Incorporated|Intra-processor operation control|
CN103646000B|2013-12-26|2015-11-25|北京控制工程研究所|一种适用于多路热备份数据传输的高可靠中断处理方法|
US9665376B2|2014-12-15|2017-05-30|International Business Machines Corporation|Sharing program interrupt logic in a multithreaded processor|
KR20160139299A|2015-05-27|2016-12-07|삼성전자주식회사|적응적 인터럽트 처리 방법 및 장치와 이를 적용하는 호스트, i/o 디바이스 및 시스템|
US10013279B2|2015-07-28|2018-07-03|International Business Machines Corporation|Processing interrupt requests|
US10031834B2|2016-08-31|2018-07-24|Microsoft Technology Licensing, Llc|Cache-based tracing for time travel debugging and analysis|
US10031833B2|2016-08-31|2018-07-24|Microsoft Technology Licensing, Llc|Cache-based tracing for time travel debugging and analysis|
US10042737B2|2016-08-31|2018-08-07|Microsoft Technology Licensing, Llc|Program tracing for time travel debugging and analysis|
US10489273B2|2016-10-20|2019-11-26|Microsoft Technology Licensing, Llc|Reuse of a related thread's cache while recording a trace file of code execution|
US10310977B2|2016-10-20|2019-06-04|Microsoft Technology Licensing, Llc|Facilitating recording a trace file of code execution using a processor cache|
US10310963B2|2016-10-20|2019-06-04|Microsoft Technology Licensing, Llc|Facilitating recording a trace file of code execution using index bits in a processor cache|
US10324851B2|2016-10-20|2019-06-18|Microsoft Technology Licensing, Llc|Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache|
CN106569889A|2016-11-09|2017-04-19|上海斐讯数据通信技术有限公司|一种中断处理系统及方法|
US10540250B2|2016-11-11|2020-01-21|Microsoft Technology Licensing, Llc|Reducing storage requirements for storing memory addresses and values|
US10318332B2|2017-04-01|2019-06-11|Microsoft Technology Licensing, Llc|Virtual machine execution tracing|
US10296442B2|2017-06-29|2019-05-21|Microsoft Technology Licensing, Llc|Distributed time-travel trace recording and replay|
US10459824B2|2017-09-18|2019-10-29|Microsoft Technology Licensing, Llc|Cache-based trace recording using cache coherence protocol data|
US10558572B2|2018-01-16|2020-02-11|Microsoft Technology Licensing, Llc|Decoupling trace data streams using cache coherence protocol data|
US10642737B2|2018-02-23|2020-05-05|Microsoft Technology Licensing, Llc|Logging cache influxes by request to a higher-level cache|
US10496537B2|2018-02-23|2019-12-03|Microsoft Technology Licensing, Llc|Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache|
法律状态:
2012-03-22| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120321 |
2012-06-22| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120621 |
2012-06-29| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120628 |
2012-08-22| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120821 |
2012-08-29| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120828 |
2012-09-21| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120920 |
2012-11-14| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
2013-02-13| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130212 |
2013-02-20| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130219 |
2013-04-16| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130415 |
2013-04-23| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130422 |
2013-05-14| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130513 |
2013-06-13| TRDD| Decision of grant or rejection written|
2013-06-26| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130625 |
2013-08-01| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130724 |
2013-08-02| R150| Certificate of patent or registration of utility model|Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2016-08-02| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-08-08| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-08-02| LAPS| Cancellation because of no payment of annual fees|
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]